package Ali;

import java.util.Scanner;

/**
 *我们称一个长度为n的序列为正则序列，当且仅当该序列是一个由1~n组成的排列，即该序列由n个正整数组成，取值在[1,n]范围，且不存在重复的数，同时正则序列不要求排序
 *
 * 有一天小团得到了一个长度为n的任意序列，他需要在有限次操作内，将这个序列变成一个正则序列，每次操作他可以任选序列中的一个数字，并将该数字加一或者减一。
 *
 * 请问他最少用多少次操作可以把这个序列变成正则序列？
 * @author le
 */
public class Test02
{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int len = in.nextInt();


        int[] data = new int[len];
        for (int i = 0;i < len;i++){
            data[i] = in.nextInt();
        }

        sort(data,0,len-1);
        int count = 0;
        for (int i = 1;i <= len;i++){
            if ((data[i-1]-i) < 0){
                count += Math.abs(data[i-1] - i);
                System.out.println(count);
                continue;
            }
            count += (data[i-1]-i);
            System.out.println(count);
        }
        System.out.println(count);

        in.close();
    }

    public static void sort(int[] arr,int left,int right){
        if (left < right){
            int key = arr[left];
            int i = left;
            int j = right;

            while(i < j){
                while(i < j && arr[j] > key){
                    j--;
                }
                if (i < j){
                    arr[i++] = arr[j];
                }
                while(i < j && arr[i] < key){
                    i++;
                }
                if (i < j){
                    arr[j--] = arr[i];

                }

            }
            arr[i] = key;
            sort(arr,left,i-1);
            sort(arr,i+1,right);
        }
    }

}
